package net.bezrabotnih.cabinet.client.request;

import java.util.List;

import com.google.gwt.requestfactory.shared.InstanceRequest;
import com.google.gwt.requestfactory.shared.Request;
import com.google.gwt.requestfactory.shared.RequestContext;
import com.google.gwt.requestfactory.shared.ServiceName;


@ServiceName("net.bezrabotnih.server.domain.Application")
public interface CabinetApplicationRequest  extends RequestContext{
	
	
	abstract InstanceRequest<net.bezrabotnih.client.managed.request.ApplicationProxy, java.lang.Void> persist();

	abstract InstanceRequest<net.bezrabotnih.client.managed.request.ApplicationProxy, java.lang.Void> remove();

	abstract Request<java.util.List<net.bezrabotnih.client.managed.request.ApplicationProxy>> findApplicationsByJobId(String jobId);
	
	 abstract Request<java.lang.Long> countApplications(String jobId,String userAccountId);
	 
	 abstract Request<java.util.List<net.bezrabotnih.client.managed.request.ApplicationProxy>> findApplicationsAmongAppliedBy(List<String> jobIds,String userAccountId);

    abstract Request<java.lang.Void> deleteApplications(String jobId,String userAccountId);


}
